// 引入 Request
import Request from './index.js'
import store from '../store/index'

// 设置 通用的 baseUrl 以及 header
// export var baseUrl = 'https://router.goody.icu:8888'

// export var baseUrl = 'https://192.168.123.206:8888'
// export var baseUrl = 'https://router.goody.icu:8888'
// export var baseUrl = 'https://lovedonote.goodykj.com:8890'
export var baseUrl = 'https://fangguaner.wm76.mtnet.ren'//测试服务器
export var upUrl = 'https://fangguaner.wm76.mtnet.ren/api/UploadFile/index'//测试服务器
// export var baseUrl = 'https://lovedonote.goodykj.com:8080'
const config = {
    baseUrl: baseUrl,
    header: { "content-type": "application/json" }
}
// 设置自己的请求拦截器，必须加上 `async`
// 请求前的拦截，比如是否登录/过期/刷新token/...
const reqInterceptor = async (options) => {
    // 微信静默登录 不等于-1说明存在
    // if (options.url.indexOf('/oauth/token') !== -1) {
    //     options.header['Authorization'] = "Basic Y29uc3VtZXI6Y29uc3VtZXI="
    // }


    //不是下列接口的话就带上token
    //   if ((options.url.indexOf('/api/index/sign_in') === -1)) {
    // debugger
    //       let access_token = uni.getStorageSync('access_token')
    //       options.header['Authorization'] = `Bearer ${access_token}`
    //   }


    //不是下列接口的话就带上token
    if ((options.url.indexOf('/api/index/sign_in') === -1)) {
        let token = uni.getStorageSync('token')
        options.data = { ...options.data, ...{ token: token } }
        // debugger
    }


    // 必须返回一个 Object
    // 拦截请求：return {mypReqToCancel: true, ...}
    // TODO: 添加任意拦截逻辑
    return options
}

// 设置自己的响应拦截器
// 统一对返回的数据进行整理，方便接口统一使用
// conf是您api的options信息，一般情况下您只需要用到您自定义的标记字段

const resInterceptor = (response, conf = {}) => {
    // if(store.state.debug){
    //     console.log(response,'测试环境模式，响应拦截器数据')
    // }
    if (response.mypFail) {
        uni.hideLoading();
        uni.showToast({
            title: '服务器异常，请联系管理员',
            icon: 'none',
            duration: 2000
        })
        return Promise.reject(response)
    }
    // 必须返回你需要处理的数据，将会进入resolve（then中处理）
    // 如果需要reject，需要设置mypReqToReject:true，还可以携带自己定义的任何提示内容（catch中处理）
    // uni.request进入fail也会进入该拦截器（为了统一处理逻辑），这个时候的response参数为{mypFail: true, response: fail info}。fail时不管返回啥，都进入reject(catch)
    if (response.statusCode !== 200) {
        uni.hideLoading();
        uni.showToast({
            title: '服务器挂掉了',
            icon: 'none',
            duration: 2000
        })
        return Promise.reject(response)
    }

    if(response.data.code == 999 || response.data.code == 998){
		let identity=uni.getStorageSync("identity")
		if(identity==="经纪人"){
			uni.clearStorage();
			uni.showToast({
				title:response.data.message,
				icon:"none",
				duration:1500
			})
			setTimeout(function(){
				return uni.redirectTo({
					url:"/pages/index/index"
				})
			},1500)
		}else{
			uni.clearStorage();
			store.commit('changeCheckLogin', false)
			// return store.dispatch('checkLogin')
			// store.dispatch('', payload)
			return uni.navigateTo({
			     url: '/pagesA/my/index'
			});
		}
    }
    if (response.data.code != 200) {
        uni.hideLoading();
        console.log(response, '接口500的response')
        uni.showToast({
            title: response.data.message,
            icon: 'none',
            duration: 2000
        })
        return Promise.reject(response.data)
    }
    return response.data
}

// 实例化请求器
// 您可以根据需要实例化多个请求器
const req = new Request(config, reqInterceptor, resInterceptor)

export default req

